package xim

import (
	"gitee.com/xiaoyutab/xgotool/optional/xlog"
	"gitee.com/xiaoyutab/xgotool/xerror"
)

// 获取群的历史消息记录
//
//	chat_id	聊天窗ID
//	offset	跳过条数
//	limit	查询条数
func GetChatMessage(chat_id uint64, offset, limit int) (int64, []Message, error) {
	if _default.DB == nil {
		return 0, nil, xerror.New("数据库未连接")
	}
	var count int64
	db := _default.DB.Table(_default.MessageTable).Where("chat_id", chat_id).Where("is_deleted", 0).Order("id DESC")
	err := db.Count(&count).Error
	if err != nil {
		return 0, nil, xlog.AE("聊天记录历史条数获取失败", err)
	}
	inf := []Message{}
	err = db.Offset(offset).Limit(limit).Find(&inf).Error
	if err != nil {
		return 0, nil, xlog.AE("聊天记录历史列表获取失败", err)
	}
	return count, inf, nil
}
